
#ifndef VENTANA_H_
#define VENTANA_H_

#include <iostream>
#include "SDL2/SDL.h"
#include "Menu.h"
#include "Scrollbar.h"
#include "Canvas.h"
#include <list>
#include "../modelo/Redimensionable.h"

class Ventana{
public:
	Ventana(double x, double y, double ancho, double alto,  Canvas* canvas, list<pair<string,string> >* listaPares) ;
	virtual ~Ventana();
	bool inicializar();
	void  dibujar(double x, double y, double ancho, double alto, SDL_Renderer* renderer, AreaOtorgada* area);
	SDL_Renderer* getRenderer();
	Scrollbar* getScrollbar();
	Canvas* getCanvas();
	Menu* getMenu();
	void recalcularObjetosScrollbar(double x, double y, double w, double h);
	void recalcularObjetosMenu(double x, double y, double w, double h);
	void desplazarObjetosScrollbar(int);
	void renderizarObjetos();
	void agregarElementoSeleccionado(Elemento*);
	void eliminarElementoSeleccionado();
	void setCanvas(Canvas*);
	bool inicializarServer();
	double getAlto();
	void setAlto(double alto);
	double getAncho();
	void setAncho(double ancho);
	double getX();
	void setX(double x);
	double getY();
	void setY(double y);

private:

	Menu* menu;
	Scrollbar* scrollbar;
	Canvas* canvas;
	SDL_Window* window;
	SDL_Renderer* renderer;
	list<pair<string,string> >* listaParesElementos;
	Elemento* elementoSeleccionado;
	void dibujarElementoSeleccionado();
	double alto;
	double ancho;
	double x;
	double y;
};

#endif /* VENTANA_H_ */
